테디 디펜스
팀원 : 홍진호
게임 개발 정보.
장르 : 액션 캐주얼 디펜스 게임
2 개발 -> 1 개발
서버 : photon,playfab 클라우드 서버 사용
게임 엔진 : 유니티 1.8 버전 (언어 : C# , JS [playfab클라우드 제어 스크립트] )
3d 모델링 편집툴 : 3ds max 2016 , blender 2.78 , bodypaint3d
2d 이미지 편집툴 : gimp, photo shop cs6
게임 플레이 영상.
게임 로비 사용.
로비의 기능
플레이스토어등의 플랫폼과의 접속
상점에서 아이템 구매
인벤토리에서 구매 습득한 상품을 사용
친구(소셜)기능으로 채팅 게임 초대 코드 전송
게임 플레이 로비
서버 작동 원리.
게임 플레이 처리 로직
애니메이션 파티클 이펙트 콘트롤러 로직.
코드 링크 : https://github.com/hongjinho/teddy_defense/blob/master/animati
on_time_controller
모든 클라이언트가 동기화를 있도록 마스터 클라이언트에선 실행 시간
계산하고 값들이 다른 클라이언트들이 읽을 있게 작성하였습니다.
애니메이션 실행 로직은 가지로 일반 애니메이션과 시간을 지정하여
시간 동안 실행하는 로직이 있습니다. (공격 판정 등의 민감하고 버프 등으로
실행 시간이 가변적인 값들을 처리할 있는 로직입니다.)
그룹과 멤버 로직
게임은 아군 케릭터를 배치하면 그룹이라는 개념으로 관리를 합니다.
체력, 스탯등을 관리합니다.
멤버 클래스들은 우선 범위에 있는 그룹이 있는지 확인합니다. 그후 있다면
룹에 포함되고 없으면 새로운 그룹을 생성합니다.
그룹은 대각선으로 군데의 점을 구하고 점들을 이어서 선의 교차점
공식을 이용하여 최종적으로 멤버의 자리 여섯 군데의 위치를 구합니다.
공식 출처 : https://zetawiki.com/wiki/%EB%91%90_%EC%A7%81%EC%8
4%A0%EC%9D%98_%EA%B5%90%EC%B0%A8%EC%A0%90
그룹 내의 멤버의 자리 여섯 군데
길찾기 알고리즘
그룹의 위치가 이동하면서 프레임마다 모든 멤버들을
해당 위치로 이동 합니다. 이동 처리는 그룹이 합니다.
그룹의 경우 트리거 모드로 콜리전 충돌을 하지 않습니다. 그러므로
navmeshagent 기능을 쓰면 안됩니다.
필요한 알고리즘 : 길찾기 알고리즘(A* 알고리즘 , 정보를 이용할수 있는
생성 알고리즘,프레임 마다의 위치값을 받아서 이동 하는 역학 공식)
[에셋 스토어의 pathfinding api 이용]
알고리즘의 문제점: 터치 인식범위가 너무 넓어서 섬세한 인식을
맵의 시드를 쿠킹했는지 코드를 열어볼 수가 없어서 수가 없다.
길찾기를 위한 시드
이동 경로
사용 리소스 출처
스테이지 1 리소스 : https://assetstore.unity.com/packages/3d/environments/f
antasy/green-forest-pack-super-bloom-series-95350
아군 모델링 : https://assetstore.unity.com/packages/3d/characters/humanoid
s/funny-bear-84649
적군 모델링 : https://assetstore.unity.com/packages/3d/characters/toon-reap
er-62209
ui 리소스 : https://www.shutterstock.com/g/Salenta
리소스 직접 제작 위의 모델링 들을 저작권자에게 허락을 맡고
정을 하여 사용 입니다. (저작권: 로얄티 프리)
api,sdk,라이브러리 출처
길찾기 로직 출처 : https://assetstore.unity.com/packages/tools/ai/pathfinding
-21989
Photon SDK : https://assetstore.unity.com/packages/tools/network/photon-un
ity-networking-classic-free-1786
Playfab SDK : https://api.playfab.com/sdks/unity
Google Play SDK : https://developers.google.com/games/services/downloads/
sdks?hl=ko